package org.lzy.shop.util

import org.lzy.shop.network.ApiException
import org.lzy.shop.network.ERROR

/**
 * 统一错误处理工具类
 */
object ErrorHandler {
    /**
     * 处理网络请求错误
     */
    fun handleException(e: Exception): ApiException {
        return when (e) {
            // 处理各种特定异常
            is java.net.SocketTimeoutException -> ApiException(ERROR.TIMEOUT_ERROR.code, ERROR.TIMEOUT_ERROR.errMsg)
            is java.net.ConnectException -> ApiException(ERROR.NETWORD_ERROR.code, ERROR.NETWORD_ERROR.errMsg)
            is java.net.UnknownHostException -> ApiException(ERROR.UNKNOW_HOST.code, ERROR.UNKNOW_HOST.errMsg)
            // 其他异常处理
            else -> ApiException(ERROR.UNKNOWN.code, "${ERROR.UNKNOWN.errMsg}：" + e.message)
        }
    }

    /**
     * 根据错误码获取错误信息
     */
    fun getErrorMessage(errorCode: Int): String {
        // 遍历ERROR枚举查找匹配的错误码
        for (error in ERROR.values()) {
            if (error.code == errorCode) {
                return error.errMsg
            }
        }
        // 如果没有找到匹配的错误码，返回默认错误信息
        return ERROR.UNKNOWN.errMsg
    }
}